package com.weitu.worklicense.mapper;

import com.weitu.worklicense.entity.WorkLicenseApply;
import com.weitu.worklicense.entity.WorkLicenseApplyCriteria;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LiMeng
 * date 2017/05/25 15:57
 */
public interface WorkLicenseApplyMapper {
    /** 
     * 查询数量
     * @param example 条件对象
     */
    int countByCriteria(WorkLicenseApplyCriteria example);

    /** 
     * 根据ID删除
     * @param id 主键ID
     */
    int deleteByPrimaryKey(String id);

    /** 
     * 添加对象所有字段
     * @param record 插入字段对象(必须含ID）
     */
    int insert(WorkLicenseApply record);

    /** 
     * 添加对象对应字段
     * @param record 插入字段对象(必须含ID）
     */
    int insertSelective(WorkLicenseApply record);

    /** 
     * 根据条件查询
     * @param example 条件对象
     */
    List<WorkLicenseApply> selectByCriteria(WorkLicenseApplyCriteria example);

    /** 
     * 根据ID查询
     * @param id 主键ID
     */
    WorkLicenseApply selectByPrimaryKey(String id);

    /** 
     * 根据条件修改对应字段
     * @param record 修改字段对象 (JOPO)
     * @param example 条件对象
     */
    int updateByCriteriaSelective(@Param("record") WorkLicenseApply record, @Param("example") WorkLicenseApplyCriteria example);

    /** 
     * 根据条件修改所有字段
     * @param record 修改字段对象 (JOPO)
     * @param example 条件对象
     */
    int updateByCriteria(@Param("record") WorkLicenseApply record, @Param("example") WorkLicenseApplyCriteria example);

    /** 
     * 根据ID修改对应字段
     * @param record 修改字段对象(必须含ID）
     */
    int updateByPrimaryKeySelective(WorkLicenseApply record);

    /** 
     * 根据ID修改所有字段(必须含ID）
     * @param record 修改字段对象(必须含ID）
     */
    int updateByPrimaryKey(WorkLicenseApply record);

    /**
     * 根据作业类型查询当日正在进行的数量
     * @return 数量
     */
    List<Map> countByWorkType();
}